package com.zlict.admin.domain;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.zlict.common.annotation.Excel;
import com.zlict.common.core.domain.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springframework.format.annotation.DateTimeFormat;

import java.math.BigDecimal;
import java.time.LocalDate;
import java.util.Date;
import java.util.List;

@EqualsAndHashCode(callSuper = true)
@Data
public class RdFixedAssets extends BaseEntity {
    /**
     * ID
     */
    private Long id;

    /**
     * 设备编号
     */
    @Excel(name = "设备编号")
    private String deviceNumber;

    /**
     * 设备名称
     */
    @Excel(name = "设备名称")
    private String deviceName;

    /**
     * 设备规格
     */
    @Excel(name = "设备规格")
    private String deviceModel;

    /**
     * 设备类型（0仪器，1设备）
     */
    @Excel(name = "设备类型",  readConverterExp = "0=仪器,1=设备,2=建筑物")
    private String deviceType;

    /**
     * 用途类型（0专用 1公用）
     */
    @Excel(name = "用途类型",  readConverterExp = "0=专用,1=公用")
    private String useType;

    /**
     * 购买方式（0自购 1租赁）
     */
    @Excel(name = "购买方式",  readConverterExp = "0=自购,1=租赁")
    private String buyType;

    /**
     * 购买时间
     */
    @Excel(name = "购买时间", width = 30, dateFormat = "yyyy-MM")
    @JsonFormat(pattern = "yyyy-MM")
    @DateTimeFormat(pattern = "yyyy-MM")
    private Date buyTime;

    /**
     * 资产原值
     */
    @Excel(name = "资产原值")
    private BigDecimal cost;

    /**
     * 首次折旧月份（1-240）
     */
    @Excel(name = "首次折旧月份")
    private String firstDevalue;

    /**
     * 月折旧额(该项不能为空,且数值大于1)
     */
    @Excel(name = "月折旧额")
    private BigDecimal devalue;

    /**
     * 使用模式(0部门，1专人，2全部人员)
     */
    @Excel(name = "使用模式",  readConverterExp = "0=部门,1=专人,2=全部人员")
    private String useModel;

    /**
     * 使用寿命
     */
    @Excel(name = "使用寿命")
    private Integer serviceLife;

    /**
     * 使用部门
     */
    @Excel(name = "使用部门")
    private Integer deptId;

    /**
     * 净残值率
     */
    @Excel(name = "净残值率")
    private BigDecimal netSalvage;

    /**
     * 运行规则
     */
    @Excel(name = "运行规则")
    private String useRule;

    /**
     * 1仪器设备 2建筑物
     */
    @Excel(name = "资产类型",  readConverterExp = "1=仪器设备,2=建筑物")
    private String tab;

    /**
     * 运行班次
     */
    @Excel(name = "运行班次")
    private String runShifts;

    /**
     * 同时使用
     */
    @Excel(name = "同时使用", readConverterExp = "0=否,1=是")
    private String sameTimeUse;


    /**折旧/租赁明细**/
    private List<RdAssetsCostDetail> costDetailList;
}